home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / New System Software Extensions / ASLM v1.1.1 SDK / Net Install / ASLM Developer Tools / Interfaces / PInterfaces / LibraryManager.p next >
Encoding:
Text File  |  1994-02-04  |  6.4 KB  |  204 lines  |  [TEXT/MPS ]

  1. {    File:        LibraryManager.p
  2.  
  3.     Contains:    Minimal declarations you need to use the SLM.
  4.  
  5.     Copyright:    © 1991-1993 by Apple Computer, Inc., all rights reserved.
  6.  
  7.  
  8. }
  9.  
  10.  
  11.  
  12. {$IFC UNDEFINED UsingIncludes}
  13. {$SETC UsingIncludes := 0}
  14. {$ENDC}
  15.  
  16. {$IFC NOT UsingIncludes}
  17.  UNIT LibraryManager;
  18.  INTERFACE
  19. {$ENDC}
  20.  
  21. {$IFC UNDEFINED UsingLibraryManager}
  22. {$SETC UsingLibraryManager := 1}
  23.  
  24. {$I+}
  25. {$SETC LibraryManagerIncludes := UsingIncludes}
  26. {$SETC UsingIncludes := 1}
  27. {$IFC UNDEFINED UsingTypes}
  28. {$I Types.p}
  29. {$ENDC}
  30. {$SETC UsingIncludes := LibraryManagerIncludes}
  31.  
  32. {******************************************************************************
  33. ** System-wide Defines
  34. *******************************************************************************}
  35.  
  36. {$IFC UNDEFINED qDebug}
  37. {$SETC qDebug := 1}
  38. {$ENDC}
  39. {$IFC UNDEFINED MAC68K}
  40. {$SETC MAC68K := 1}
  41. {$ENDC}
  42.  
  43. {******************************************************************************
  44. ** Error Constants
  45. *******************************************************************************}
  46.  
  47. CONST
  48.     kNoError                    = 0;
  49.     kInProgress                    = 1;
  50.  
  51.     kNotFound                    = -3120;    { class wasn't found }
  52.     kNoParent                    = -3121;    { class doesn't have a shared parent }
  53.     kParentNotFound                = -3122;    { shared parent of class could not be found }
  54.     kNotRelated                    = -3123;    { the classes are not related }
  55.     kInvalidObject                = -3124;    { not a valid object }
  56.  
  57.     kPoolCorrupted                = -3125;
  58.     kOutOfMemory                = -3126;
  59.  
  60.     kCodeNotLoaded                = -3127;
  61.     kCouldNotLoadCode            = -3128;
  62.  
  63.     kFilePreflighted            = -3129;    { can't close library file because it is preflighted }
  64.     kFileNotPreflighted            = -3130;    { failed because library file is not preflighted }
  65.     kFileNotFound                = -3131;
  66.  
  67.     kLibraryManagerNotLoaded    = -3132;
  68.  
  69.     kDuplicateFound                = -3134;    { duplicate found is collection }
  70.  
  71.     kSeedChanged                = -3135;
  72.     kUnconstructedObject        = -3136;
  73.     kInternalError                = -3137;
  74.     kVersionError                = -3138;
  75.  
  76.     kFolderNotFound                = -3139;    { for RegisterLibraryFileFolder/UnregisterLibraryFileFolder }
  77.     kFolderInUse                = -3140;    { for UnregisterLibraryFileFolder }
  78.  
  79.     kResourceNotFound            = -3141;
  80.  
  81.     kNotAllowedNow                = -3155;    { matches XTI TOUTSTATE }
  82.     kNotSupported                = -3167;    { matches XTI TNOTSUPPORT }
  83.  
  84. {******************************************************************************
  85. ** Typedefs
  86. *******************************************************************************}
  87.  
  88. TYPE    GlobalWorld        = Ptr;
  89. CONST    kInvalidWorld    = 0;
  90.  
  91. TYPE    Version         = INTEGER;
  92. CONST    kAnyVersion        = 0;
  93.  
  94. {******************************************************************************
  95. ** Forward class declarations
  96. *******************************************************************************}
  97.  
  98. TYPE
  99.     TDynamicPtr            = Ptr;
  100.     TLibraryManagerPtr    = Ptr;
  101.     TClassID            = StringPtr;
  102.     TFunctionSetID        = StringPtr;
  103.     TLibraryID            = StringPtr;
  104.     TFormattedStreamPtr    = Ptr;
  105.     TStandardPoolPtr    = Ptr;
  106.     TClassInfoPtr        = Ptr;
  107.  
  108. {******************************************************************************
  109. ** Enums for Memory types
  110. *******************************************************************************}
  111.  
  112. TYPE ZoneType =
  113. (
  114.     kDummyZone, kSystemZone, kKernelZone, kApplicZone,
  115.     kCurrentZone, kTempZone
  116. );
  117.  
  118. TYPE MemoryType =
  119. (
  120.     kDummyMemory, kNormalMemory, kHoldMemory, kLockMemory, kLockMemoryContiguous
  121. );
  122.  
  123.  
  124. {******************************************************************************
  125. ** Some global routines
  126. **
  127. ** InitLibraryManager initializes a client to use the ASLM. All clients
  128. ** must make this call except for ASLM libraries. CleanupLibraryManager
  129. ** should be called when the client is done using the ASLM.
  130. **
  131. ** GetLocalLibraryManager can be called after InitLibraryManager is called. If it
  132. ** returns NULL then InitLibraryManager failed.
  133. *******************************************************************************}
  134.  
  135. {    -------------------------------------------------------------------------
  136.     These functions are for use by applications or stand-alone code 
  137.     resources only
  138.     ------------------------------------------------------------------------- }
  139.  
  140. FUNCTION    InitLibraryManager(poolsize : LONGINT; zone : ZoneType; memType : MemoryType): OSErr; C;
  141. PROCEDURE    CleanupLibraryManager; C;
  142.  
  143. {    -------------------------------------------------------------------------
  144.     These functions can be used by any Shared Library Manager clients
  145.     ------------------------------------------------------------------------- }
  146.     
  147. FUNCTION    NewObject(classID : TClassID; VAR err : OSErr; pool : TStandardPoolPtr): Ptr; C;
  148. FUNCTION    NewObjectWithParent(classID : TClassID; parentID : TClassID;
  149.                                 VAR err : OSErr; pool : TStandardPoolPtr): Ptr; C;
  150. FUNCTION    NewObjectFromStream(stream : TFormattedStreamPtr; VAR err : OSErr;
  151.                                 pool : TStandardPoolPtr): Ptr; C;
  152.  
  153. FUNCTION    GetClassInfo(classID : TClassID): TClassInfoPtr; C;
  154.  
  155. FUNCTION    VerifyClass(classID : TClassID; parentID : TClassID): OSErr; C;
  156. FUNCTION    CastObject(object : Ptr; parentID : TClassID; VAR err : OSErr): Ptr; C;
  157. FUNCTION    CastToMainObject(object : Ptr): Ptr; C;
  158.  
  159. FUNCTION    LoadClass(classID : TClassID; forceAll : Boolean): OSErr; C;
  160. FUNCTION    UnloadClass(classID : TClassID): OSErr; C;
  161. FUNCTION    IsClassLoaded(classID : TClassID): Boolean; C;
  162.  
  163. FUNCTION    LoadFunctionSet(functionSetID : TFunctionSetID; forceAll : Boolean): OSErr; C;
  164. FUNCTION    UnloadFunctionSet(functionSetID : TFunctionSetID): OSErr; C;
  165. FUNCTION    IsFunctionSetLoaded(functionSetID : TFunctionSetID): Boolean; C;
  166.  
  167. FUNCTION    GetFunctionPointer(functionSetID : TFunctionSetID; funcName : StringPtr;
  168.                                version : Version; VAR err : OSErr): ProcPtr; C;
  169. FUNCTION    GetIndexedFunctionPointer(functionSetID : TFunctionSetID; idx : INTEGER;
  170.                                version : Version; VAR err : OSErr): ProcPtr; C;
  171.  
  172. FUNCTION    LoadLibraries(forceAll : Boolean): OSErr; C;
  173. FUNCTION    UnloadLibraries: OSErr; C;
  174. PROCEDURE    ResetFunctionSet(functionSetID : TFunctionSetID); C;
  175.  
  176. FUNCTION    TraceLogOn: Boolean; C;
  177. FUNCTION    TraceLogOff: Boolean; C;
  178.  
  179. FUNCTION    GetLocalLibraryManager: TLibraryManagerPtr; C;
  180.  
  181. FUNCTION    GetLocalPool: TStandardPoolPtr; C;
  182. PROCEDURE    SetLocalPool(pool : TStandardPoolPtr); C;
  183. FUNCTION    GetClientPool: TStandardPoolPtr; C;
  184. FUNCTION    GetDefaultPool: TStandardPoolPtr; C;
  185. PROCEDURE    SetDefaultPool(pool : TStandardPoolPtr); C;
  186. FUNCTION    GetSystemPool: TStandardPoolPtr; C;
  187.  
  188.  
  189. {*******************************************************************************
  190. ** EXCEPTION Handling
  191. **
  192. ** Only calling Fail is allowed from Pascal
  193. ********************************************************************************}
  194.  
  195. PROCEDURE    Fail(err : OSErr; message : StringPtr); C;
  196.  
  197.  
  198. {$ENDC}    { UsingLibraryManager }
  199.  
  200. {$IFC NOT UsingIncludes}
  201.     END.
  202. {$ENDC}
  203.  
  204.